<?php
    class EmployeesController extends AppController
	{
		var $name = 'Employees';
//		var $hasMany = 'User';
//		var $helpers = array('Html', 'Form', 'Javascript', 'Time');

		/*
		 * Xử lý hiển thị danh sách thông tin nhân sự
		 * @return 
		 */
		function index($page = 1,$perpage = 5)
		{
//			trường hợp nếu số trang ko fai là kiểu số hoặc nhỏ hơn 0 thì trở về trang 1			
			if (is_int($page)) $page = 1;
			
			$count = $this->Employee->find('count', array('conditions' => 'Employee.status <> 3'));
			$this->set('countAll', $count);			
			$this->set('perpage', $perpage);
			$countPage = $this->findPages($count,$perpage);
			if ($page > $countPage) $page = $countPage;
			$this->set('curpage', $page);
			$this->set('countPage', $countPage);
			$this->set('employees', $this->Employee->find(
									'all', 
									array(
										'conditions' => 'Employee.status <> 3',
										'order' => 'Employee.lastname',
										'limit' => $perpage,
										'page' => $page,
									)));
		}
		/*
		 * Thêm mới nhân sự
		 */
		function add() {
			if (!empty($this->data)) {
				$this->Employee->create();
//				$this->log($this->data['Employee']['birthday']);
				$tmp_birthday = $this->data['Employee']['birthday'];
				$this->data['Employee']['birthday'] = $this->string2date($tmp_birthday);

				if ($this->Employee->save($this->data)) {
					$last_insert_id = $this->Employee->id;
					$this->Session->setFlash('Thêm mới thành công #'.$last_insert_id);
					$this->redirect(array('action'=>'index'), null, true);
				} else {
					$this->log($this->data['Employee']['birthday'], LOG_DEBUG);
					$this->data['Employee']['birthday'] = $tmp_birthday;
					$this->Session->setFlash('<span style="font-size: 10pt"><strong>Thêm mới nhân sự không thành công. Hãy thử lại.</strong></span>');
				}
			}
		}
		/*
		 * Hiệu chỉnh thông tin nhân sự
		 */
		function edit($id = null) {
			if (!$id) {
				$this->Session->setFlash('Không tìm thấy nhân sự mà bạn vừa chọn');
				$this->redirect(array('action'=>'index'), null, true);
			}
			if (empty($this->data)) {
				$this->data = $this->Employee->find(array('id' => $id));
				$this->data['Employee']['birthday'] = $this->date2string($this->data['Employee']['birthday']);				
			} else {
				$this->data['Employee']['birthday'] = $this->string2date($this->data['Employee']['birthday']);
				if ($this->Employee->save($this->data)) {
					$this->Session->setFlash('Cập nhật thành công');
					$this->redirect(array('action'=>'index'), null, true);
				} else {
					$this->log($this->validationErrors['Employee'], LOG_DEBUG);
					$this->Session->setFlash('Cập nhật thông tin nhân sự không thành công.  Hãy thử lại.');
				}
			}
    	}
		/*
		 * @author: vulh
		 * Xóa nhân sự
		 * Việc xóa chỉ cập nhật lại trạng thái của nhân sự đó = 3
		 * Employee.status = 3
		 */
		function delete($id = null) {
			if (!$id) {
				$this->log("delete id employee".$id);
			}
//			$sql = "SELECT COUNT(*) AS CNT FROM employees WHERE id IN (".$id.")";
//			$count = $this->Employee->query($sql);
//			$this->log($count);
//			gia tri $count[0][0]['CNT']

//			$this->data = $this->Employee->find(array('id' => $id));
//			$this->data['Employee']['status'] = 3;
//			$this->Employee->save($this->data);
			$this->Employee->delete($id);

			$this->Session->setFlash('Employee #'.$id.' deleted');
			$this->redirect(array('action'=>'index'), null, true);
/*			
			if (!$id) {
				$this->Session->setFlash('Invalid id for Task');
				$this->redirect(array('action'=>'index'), null, true);
			}
			if ($this->Employee->del($id)) {
				$this->Session->setFlash('Employee #'.$id.' deleted');
				$this->redirect(array('action'=>'index'), null, true);
			}
*/			
		}
	}
?>